package com.wind.taobao.api.trade.item.rest
{
	import com.wind.taobao.api.IPrivateAPI;
	import com.wind.taobao.core.exception.InvalidRequestParametersException;
	import com.wind.taobao.core.util.TaobaoUtils;
	import com.wind.taobao.core.webservice.TaobaoRequest;

	/**
	 * taobao.postage.update Request
	 * @author fxy
	 *
	 */
	public class PostageUpdateRequest extends TaobaoRequest implements IPrivateAPI
	{
		public override function get method():String
		{
			return "taobao.postage.update"
		}
		/**
		 * Y 	 邮费模板id.注意:给定的postage_id必须是存在的postage的id
		 */
		[Bindable]
		public var postage_id:String;
		/**
		 * 默认平邮费用.精确到1位小数;单位:元。如:10.5
		 */
		[Bindable]
		public var post_price:String;
		/**
		 * 默认平邮加价费用.精确到1位小数;单位:元。如:10.5
		 */
		[Bindable]
		public var post_increase:String;
		/**
		 * 默认快递费用.精确到1位小数;单位:元。如:10.5
		 */
		[Bindable]
		public var express_price:String;
		/**
		 * 默认快递加价费用.精确到1位小数;单位:元。如:10.5
		 */
		[Bindable]
		public var express_increase:String;
		/**
		 * 默认EMS费用.精确到1位小数;单位:元。如:10.5
		 */
		[Bindable]
		public var ems_price:String;
		/**
		 * 默认EMS加价费用.精确到1位小数;单位:元。如:10.5
		 */
		[Bindable]
		public var ems_increase:String;
		/**
		 * N 	邮费模板名称
		 */
		[Bindable]
		public var name:String;
		/**
		 * N 	邮费模板备注
		 */
		[Bindable]
		public var memo:String;
		/**
		 * N 	运费子模板id:修改多个子模板时,用 “;”区分.<br>
		 * 注意1:给定的postage_mode.id必须是当前postage所包含的postage_mode的id.<br>
		 * 注意2:在修改多个PostageMode时,字符串中使用 " ; " 分号区分,必须注意每个字段的数量一定要相等.
		 */
		[Bindable]
		public var postage_mode_ids:String;
		/**
		 * N 	运费方式:平邮(post),快递公司(express),EMS(ems)数量串:例(post;express;ems)分号区分
		 */
		[Bindable]
		public var postage_mode_types:String;
		/**
		 * N 	邮费子项涉及的地区，多个地区用逗号连接数量串。可以用taobao.areas.get接口获取。或者参考：http://www.stats.gov.cn/tjbz/xzqhdm/t20080215_402462675.htm 例 (110000;310000;320000,330000)就代表邮费子项涉及(北京;上海;江苏,浙江)四个地区。填写时要注意对照地区代码值，如果填入错误地区代码，将会出现错误信息
		 */
		[Bindable]
		public var postage_mode_dests:String;
		/**
		 * N 	运费方式单价数量串：例 (11.2;14;1;6).精确到1位小数;单位:元。如:10.5
		 */
		[Bindable]
		public var postage_mode_prices:String;
		/**
		 * N 	运费方式加件费用数量串：例 (1.5;2.4;2.0).精确到1位小数;单位:元。如:10.5
		 */
		[Bindable]
		public var postage_mode_increases:String;
		/**
		 * N 	子模板操作类型：新增(add),修改(update),删除(delete). 例(add;add;add).注意：对子模板进行操作的时候此参数必填.如果不填那默认为update.新增操作不能传子模板ID
		 */
		[Bindable]
		public var postage_mode_optTypes:String;

		public override function validate():void
		{
			if (!TaobaoUtils.hasValue(name))
			{
				throw new InvalidRequestParametersException("请求参数[name]不能为空");
			}
			if (!TaobaoUtils.hasAllValue([post_price, post_increase]) && !TaobaoUtils.hasAllValue([express_price, express_increase]) && !TaobaoUtils.hasAllValue([ems_price, ems_increase]))
			{
				throw new InvalidRequestParametersException("请求参数[(post_price,post_increase),(express_price,express_increase),(ems_price,ems_increase)]不能全部为空");
			}

		}
	}
}